Micron Document
πŸŽ–οΈGitΠ―Ρ€Π°πŸŽ–οΈ

Node / meshtastic / Meshtastic-Android / files / docs / en / developer.md

Displaying Raw β€’ View rendered β€’ Download

docs/en/developer.md ccd7fcd45b45665a2c6fa59cf7ed61618e1be6c7 (ccd7fcd4) Text, 2.68 KB

---
title: Developer Guide
layout: default
nav_order: 2
Tc9d1d9has_children: true
Tc9d1d9---

Tc9d1d9# Developer Guide

Technical documentation for contributing to the Meshtastic Android and Desktop app.

---

Tc9d1d9## Before You Open a PR

Things that trip up first-time contributors β€” check these before requesting review:

Tff7b72- **Formatting passes** β€” run Ta5d6ff`./gradlew spotlessApply` to auto-format, then verify with Ta5d6ff`spotlessCheck`
Tff7b72- **Detekt passes** β€” run Ta5d6ff`./gradlew detekt` and fix all reported issues
Tff7b72- **All tests pass** β€” run Ta5d6ff`./gradlew test allTests` (both are needed: Ta5d6ff`test` covers Android-only modules, Ta5d6ff`allTests` covers KMP)
Tff7b72- **Screenshot tests pass** β€” if you touched any Compose UI, run Ta5d6ff`./gradlew :screenshot-tests:validateFdroidDebugScreenshotTest` and update reference images if needed
Tff7b72- **Proto submodule unchanged** β€” Ta5d6ff`core/proto/` is a read-only git submodule. Never modify proto files directly
Tff7b72- **Docs updated** β€” if you changed user-visible UI, update the corresponding page under Ta5d6ff`docs/user/`. The Ta5d6ff`UI & Docs Governance` CI workflow will flag the PR if you didn't. Add the Ta5d6ff`skip-docs-check` label if it genuinely isn't needed
Tff7b72- **Previews updated** β€” if you changed UI composables, update the corresponding Ta5d6ff`*Previews.kt` file and screenshot tests. The governance workflow will post an advisory. Add Ta5d6ff`skip-preview-check` to dismiss
Tff7b72- **Branch naming** β€” branches must start with Ta5d6ff`feat/`, Ta5d6ff`fix/`, Ta5d6ff`chore/`, Ta5d6ff`docs/`, Ta5d6ff`build/`, Ta5d6ff`ci/`, Ta5d6ff`refactor/`, Ta5d6ff`test/`, or Ta5d6ff`deps/`

---

Tc9d1d9## What's New for Developers

<!-- DEV_WHATS_NEW_START -->
<!-- Add new entries at the top. Format:
**Month YYYY** β€” [Tff7b72Page or area](Te6edf3relative/path) β€” One sentence on what changed architecturally or procedurally.
Keep the last 5–8 entries and trim older ones from the bottom.
-->

**May 2026** β€” [Tff7b72Measurement & Formatting](Te6edf3developer/measurement) β€” New page documenting the Ta5d6ff`MetricFormatter` API, locale-aware unit conversion patterns, and how to add new measurement types.

**May 2026** β€” [Tff7b72Testing](Te6edf3developer/testing) β€” Compose Preview Screenshot Testing (CST) integrated: Ta5d6ff`screenshot-tests/` module, Ta5d6ff`@PreviewTest` wrappers, CI validation, docs asset pipeline.

**May 2026** β€” In-app documentation system added: markdown source under Ta5d6ff`docs/user/` and Ta5d6ff`docs/developer/` is bundled as Compose Resources and rendered via Ta5d6ff`multiplatform-markdown-renderer-m3`.

**May 2026** β€” [Tff7b72Architecture](Te6edf3developer/architecture) β€” Documented KMP module layering, Navigation 3 patterns, and feature module conventions.

**May 2026** β€” [Tff7b72Contributing](Te6edf3developer/contributing) β€” Established docs governance CI workflow for PRs that change UI without updating docs.

<!-- DEV_WHATS_NEW_END -->

Served by rngit 1.5.2 - Generated in 0.06s